<!-- HTML header for doxygen 1.8.20-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
	<meta http-equiv="X-UA-Compatible" content="IE=9"/>
	<meta name="generator" content="Doxygen 1.9.4"/>
	<meta name="viewport" content="width=device-width, initial-scale=1"/>
	<title>Raspberry Pi Pico SDK: include/pico/time.h File Reference</title>
	<!-- <link href="tabs.css" rel="stylesheet" type="text/css"/> -->
	<script type="text/javascript" src="jquery.js"></script>
	<script type="text/javascript" src="dynsections.js"></script>
	<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
	<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
    <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500&display=swap" rel="stylesheet">
	<link href="doxygen.css" rel="stylesheet" type="text/css" />
	<link href="normalise.css" rel="stylesheet" type="text/css"/>
<link href="main.css" rel="stylesheet" type="text/css"/>
<link href="styles.css" rel="stylesheet" type="text/css"/>
</head>
<body>
	<div class="navigation-mobile">
		<div class="logo--mobile">
			<a href="/"><img src="logo-mobile.svg" alt="Raspberry Pi"></a>
		</div>
		<div class="navigation-toggle">
			<span class="line-1"></span>
			<span class="line-2">
				<p>Menu Toggle</p>
			</span>
			<span class="line-3"></span>
		</div>
	</div>
	<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
		<div class="logo">
			<a href="index.html"> <img src="logo.svg" alt="Raspberry Pi"></a>
			<span style="display: inline-block; margin-top: 10px;">
				v2.1.0
			</span>
		</div>
		<div class="navigation-footer">
			<img src="logo-mobile.svg" alt="Raspberry Pi">
			<a href="https://www.raspberrypi.com/" target="_blank">By Raspberry Pi Ltd</a>
		</div>
<!-- 		<div class="search">
			<form>
				<input type="search" name="search" id="search" placeholder="Search">
				<input type="submit" value="Search">
			</form>
		</div> -->
<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('common_2pico__time_2include_2pico_2time_8h.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle"><div class="title">time.h File Reference</div></div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="pico_8h_source.html">pico.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="rp2__common_2hardware__timer_2include_2hardware_2timer_8h_source.html">hardware/timer.h</a>&quot;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for time.h:</div>
<div class="dyncontent">
<div class="center"><img src="common_2pico__time_2include_2pico_2time_8h__incl.png" border="0" usemap="#ainclude_2pico_2time_8h" alt=""/></div>
<map name="ainclude_2pico_2time_8h" id="ainclude_2pico_2time_8h">
<area shape="rect" title=" " alt="" coords="441,5,587,32"/>
<area shape="rect" href="pico_8h.html" title=" " alt="" coords="411,155,473,181"/>
<area shape="rect" href="rp2__common_2hardware__timer_2include_2hardware_2timer_8h.html" title=" " alt="" coords="510,80,643,107"/>
<area shape="rect" href="common_2pico__base__headers_2include_2pico_2types_8h_source.html" title=" " alt="" coords="158,379,259,405"/>
<area shape="rect" title=" " alt="" coords="252,229,365,256"/>
<area shape="rect" href="common_2pico__base__headers_2include_2pico_2config_8h_source.html" title=" " alt="" coords="390,229,494,256"/>
<area shape="rect" href="platform_8h.html" title=" " alt="" coords="596,229,717,256"/>
<area shape="rect" href="error_8h_source.html" title=" " alt="" coords="741,229,836,256"/>
<area shape="rect" href="assert_8h_source.html" title=" " alt="" coords="5,453,111,480"/>
<area shape="rect" title=" " alt="" coords="74,528,157,555"/>
<area shape="rect" title=" " alt="" coords="211,453,281,480"/>
<area shape="rect" title=" " alt="" coords="306,453,381,480"/>
<area shape="rect" title=" " alt="" coords="173,304,337,331"/>
<area shape="rect" href="compiler_8h_source.html" title=" " alt="" coords="362,304,543,331"/>
<area shape="rect" href="sections_8h_source.html" title=" " alt="" coords="567,304,746,331"/>
<area shape="rect" href="panic_8h_source.html" title=" " alt="" coords="770,304,930,331"/>
<area shape="rect" title=" " alt="" coords="954,304,1165,331"/>
<area shape="rect" title=" " alt="" coords="1189,304,1340,331"/>
<area shape="rect" title=" " alt="" coords="357,379,548,405"/>
<area shape="rect" title=" " alt="" coords="497,155,678,181"/>
<area shape="rect" title=" " alt="" coords="703,155,872,181"/>
</map>
</div>
</div><div class="textblock"><div class="dynheader">
This graph shows which files directly or indirectly include this file:</div>
<div class="dyncontent">
<div class="center"><img src="common_2pico__time_2include_2pico_2time_8h__dep__incl.png" border="0" usemap="#ainclude_2pico_2time_8hdep" alt=""/></div>
<map name="ainclude_2pico_2time_8hdep" id="ainclude_2pico_2time_8hdep">
<area shape="rect" title=" " alt="" coords="706,5,853,32"/>
<area shape="rect" href="cyw43__configport_8h_source.html" title=" " alt="" coords="147,87,345,114"/>
<area shape="rect" href="rp2__common_2hardware__i2c_2include_2hardware_2i2c_8h.html" title=" " alt="" coords="369,87,539,114"/>
<area shape="rect" href="async__context_8h.html" title=" " alt="" coords="1021,169,1164,211"/>
<area shape="rect" href="lock__core_8h.html" title=" " alt="" coords="563,87,742,114"/>
<area shape="rect" href="rp2__common_2pico__sha256_2include_2pico_2sha256_8h.html" title=" " alt="" coords="817,87,979,114"/>
<area shape="rect" href="stdlib_8h.html" title=" " alt="" coords="1003,87,1155,114"/>
<area shape="rect" href="timeout__helper_8h_source.html" title=" " alt="" coords="1179,80,1334,121"/>
<area shape="rect" href="i2c__slave_8h.html" title=" " alt="" coords="5,177,183,203"/>
<area shape="rect" href="async__context__base_8h_source.html" title=" " alt="" coords="1825,266,1968,307"/>
<area shape="rect" href="async__context__freertos_8h_source.html" title=" " alt="" coords="1992,266,2140,307"/>
<area shape="rect" href="async__context__poll_8h_source.html" title=" " alt="" coords="649,266,792,307"/>
<area shape="rect" href="async__context__threadsafe__background_8h_source.html" title=" " alt="" coords="470,259,625,315"/>
<area shape="rect" href="btstack__cyw43_8h.html" title=" " alt="" coords="817,266,969,307"/>
<area shape="rect" href="btstack__run__loop__async__context_8h_source.html" title=" " alt="" coords="993,266,1192,307"/>
<area shape="rect" href="cyw43__arch_8h.html" title=" " alt="" coords="1217,266,1363,307"/>
<area shape="rect" href="lwip__freertos_8h.html" title=" " alt="" coords="1388,273,1589,300"/>
<area shape="rect" href="lwip__nosys_8h.html" title=" " alt="" coords="1613,273,1801,300"/>
<area shape="rect" href="critical__section_8h.html" title=" " alt="" coords="207,169,355,211"/>
<area shape="rect" href="mutex_8h.html" title=" " alt="" coords="379,177,537,203"/>
<area shape="rect" href="sem_8h.html" title=" " alt="" coords="767,177,911,203"/>
<area shape="rect" href="queue_8h.html" title=" " alt="" coords="562,177,743,203"/>
<area shape="rect" href="common_2pico__sync_2include_2pico_2sync_8h.html" title=" " alt="" coords="299,273,446,300"/>
<area shape="rect" href="multicore_8h.html" title=" " alt="" coords="283,363,462,389"/>
<area shape="rect" href="SEGGER__RTT_8h_source.html" title=" " alt="" coords="1189,177,1391,203"/>
</map>
</div>
</div>
<p><a href="common_2pico__time_2include_2pico_2time_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structrepeating__timer.html">repeating_timer</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Information about a repeating timer.  <a href="structrepeating__timer.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a778cb5029a6a1b12f5d3d5e2e584ad12"><td class="memItemLeft" align="right" valign="top"><a id="a778cb5029a6a1b12f5d3d5e2e584ad12" name="a778cb5029a6a1b12f5d3d5e2e584ad12"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PARAM_ASSERTIONS_ENABLED_PICO_TIME</b>&#160;&#160;&#160;0</td></tr>
<tr class="separator:a778cb5029a6a1b12f5d3d5e2e584ad12"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a316f5ea49b35d9ad63b89b92b9044997"><td class="memItemLeft" align="right" valign="top"><a id="a316f5ea49b35d9ad63b89b92b9044997" name="a316f5ea49b35d9ad63b89b92b9044997"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PICO_TIME_SLEEP_OVERHEAD_ADJUST_US</b>&#160;&#160;&#160;6</td></tr>
<tr class="separator:a316f5ea49b35d9ad63b89b92b9044997"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga72314cafa18f7b2f90f9200be136ca27"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__alarm.html#ga72314cafa18f7b2f90f9200be136ca27">PICO_TIME_DEFAULT_ALARM_POOL_DISABLED</a>&#160;&#160;&#160;0</td></tr>
<tr class="memdesc:ga72314cafa18f7b2f90f9200be136ca27"><td class="mdescLeft">&#160;</td><td class="mdescRight">If 1 then the default alarm pool is disabled (so no timer_alarm is claimed for the pool)  <a href="group__alarm.html#ga72314cafa18f7b2f90f9200be136ca27">More...</a><br /></td></tr>
<tr class="separator:ga72314cafa18f7b2f90f9200be136ca27"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga40b4a03bf9e967d4e7170d20c5c9fb15"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__alarm.html#ga40b4a03bf9e967d4e7170d20c5c9fb15">PICO_TIME_DEFAULT_ALARM_POOL_HARDWARE_ALARM_NUM</a>&#160;&#160;&#160;3</td></tr>
<tr class="memdesc:ga40b4a03bf9e967d4e7170d20c5c9fb15"><td class="mdescLeft">&#160;</td><td class="mdescRight">Selects which timer_alarm is used for the default alarm pool.  <a href="group__alarm.html#ga40b4a03bf9e967d4e7170d20c5c9fb15">More...</a><br /></td></tr>
<tr class="separator:ga40b4a03bf9e967d4e7170d20c5c9fb15"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4bb3180aa64f3c9af8c521ec1b22bdb2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__alarm.html#ga4bb3180aa64f3c9af8c521ec1b22bdb2">PICO_TIME_DEFAULT_ALARM_POOL_MAX_TIMERS</a>&#160;&#160;&#160;16</td></tr>
<tr class="memdesc:ga4bb3180aa64f3c9af8c521ec1b22bdb2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Selects the maximum number of concurrent timers in the default alarm pool.  <a href="group__alarm.html#ga4bb3180aa64f3c9af8c521ec1b22bdb2">More...</a><br /></td></tr>
<tr class="separator:ga4bb3180aa64f3c9af8c521ec1b22bdb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:gaa593548569c182a0d65d2e06a9c3493b"><td class="memItemLeft" align="right" valign="top">typedef int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__alarm.html#gaa593548569c182a0d65d2e06a9c3493b">alarm_id_t</a></td></tr>
<tr class="memdesc:gaa593548569c182a0d65d2e06a9c3493b"><td class="mdescLeft">&#160;</td><td class="mdescRight">The identifier for an alarm.  <a href="group__alarm.html#gaa593548569c182a0d65d2e06a9c3493b">More...</a><br /></td></tr>
<tr class="separator:gaa593548569c182a0d65d2e06a9c3493b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gade88ed45e9b59ad39d91f17c8709c16a"><td class="memItemLeft" align="right" valign="top">typedef int64_t(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__alarm.html#gade88ed45e9b59ad39d91f17c8709c16a">alarm_callback_t</a>) (<a class="el" href="group__alarm.html#gaa593548569c182a0d65d2e06a9c3493b">alarm_id_t</a> id, void *user_data)</td></tr>
<tr class="memdesc:gade88ed45e9b59ad39d91f17c8709c16a"><td class="mdescLeft">&#160;</td><td class="mdescRight">User alarm callback.  <a href="group__alarm.html#gade88ed45e9b59ad39d91f17c8709c16a">More...</a><br /></td></tr>
<tr class="separator:gade88ed45e9b59ad39d91f17c8709c16a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aab6827a4c19f5e2e1e9f4db8bad64a99"><td class="memItemLeft" align="right" valign="top"><a id="aab6827a4c19f5e2e1e9f4db8bad64a99" name="aab6827a4c19f5e2e1e9f4db8bad64a99"></a>
typedef struct <a class="el" href="structalarm__pool.html">alarm_pool</a>&#160;</td><td class="memItemRight" valign="bottom"><b>alarm_pool_t</b></td></tr>
<tr class="separator:aab6827a4c19f5e2e1e9f4db8bad64a99"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a91425ae7f3d1d490003cd9396702d4a3"><td class="memItemLeft" align="right" valign="top"><a id="a91425ae7f3d1d490003cd9396702d4a3" name="a91425ae7f3d1d490003cd9396702d4a3"></a>
typedef void&#160;</td><td class="memItemRight" valign="bottom"><b>alarm_pool_timer_t</b></td></tr>
<tr class="separator:a91425ae7f3d1d490003cd9396702d4a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0457cdc598f6c16070f132059096eac8"><td class="memItemLeft" align="right" valign="top"><a id="a0457cdc598f6c16070f132059096eac8" name="a0457cdc598f6c16070f132059096eac8"></a>
typedef struct <a class="el" href="structrepeating__timer.html">repeating_timer</a>&#160;</td><td class="memItemRight" valign="bottom"><b>repeating_timer_t</b></td></tr>
<tr class="separator:a0457cdc598f6c16070f132059096eac8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga028fe2b7d00c1927c24131aae7c375f3"><td class="memItemLeft" align="right" valign="top">typedef bool(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__repeating__timer.html#ga028fe2b7d00c1927c24131aae7c375f3">repeating_timer_callback_t</a>) (<a class="el" href="structrepeating__timer.html">repeating_timer_t</a> *rt)</td></tr>
<tr class="memdesc:ga028fe2b7d00c1927c24131aae7c375f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback for a repeating timer.  <a href="group__repeating__timer.html#ga028fe2b7d00c1927c24131aae7c375f3">More...</a><br /></td></tr>
<tr class="separator:ga028fe2b7d00c1927c24131aae7c375f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga6a1d4dfb43030b6594fa050f50feb47a"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="group__timestamp.html#ga8b7f3d602cc053f05bacceeacc257ed8">absolute_time_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__timestamp.html#ga6a1d4dfb43030b6594fa050f50feb47a">get_absolute_time</a> (void)</td></tr>
<tr class="memdesc:ga6a1d4dfb43030b6594fa050f50feb47a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a representation of the current time.  <a href="group__timestamp.html#ga6a1d4dfb43030b6594fa050f50feb47a">More...</a><br /></td></tr>
<tr class="separator:ga6a1d4dfb43030b6594fa050f50feb47a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac47dae7bf7af0a5a2136fafbf93bc07f"><td class="memItemLeft" align="right" valign="top"><a id="ac47dae7bf7af0a5a2136fafbf93bc07f" name="ac47dae7bf7af0a5a2136fafbf93bc07f"></a>
static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>us_to_ms</b> (uint64_t us)</td></tr>
<tr class="separator:ac47dae7bf7af0a5a2136fafbf93bc07f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab12467c48bde27171b552ac4dc8c7d59"><td class="memItemLeft" align="right" valign="top">static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__timestamp.html#gab12467c48bde27171b552ac4dc8c7d59">to_ms_since_boot</a> (<a class="el" href="group__timestamp.html#ga8b7f3d602cc053f05bacceeacc257ed8">absolute_time_t</a> t)</td></tr>
<tr class="memdesc:gab12467c48bde27171b552ac4dc8c7d59"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a timestamp into a number of milliseconds since boot.  <a href="group__timestamp.html#gab12467c48bde27171b552ac4dc8c7d59">More...</a><br /></td></tr>
<tr class="separator:gab12467c48bde27171b552ac4dc8c7d59"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga729dc88ec38af2d054ba7307214bcf3c"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="group__timestamp.html#ga8b7f3d602cc053f05bacceeacc257ed8">absolute_time_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__timestamp.html#ga729dc88ec38af2d054ba7307214bcf3c">delayed_by_us</a> (const <a class="el" href="group__timestamp.html#ga8b7f3d602cc053f05bacceeacc257ed8">absolute_time_t</a> t, uint64_t us)</td></tr>
<tr class="memdesc:ga729dc88ec38af2d054ba7307214bcf3c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a timestamp value obtained by adding a number of microseconds to another timestamp.  <a href="group__timestamp.html#ga729dc88ec38af2d054ba7307214bcf3c">More...</a><br /></td></tr>
<tr class="separator:ga729dc88ec38af2d054ba7307214bcf3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7ee031a9cdeb9a9a6328d1b41d53cf5c"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="group__timestamp.html#ga8b7f3d602cc053f05bacceeacc257ed8">absolute_time_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__timestamp.html#ga7ee031a9cdeb9a9a6328d1b41d53cf5c">delayed_by_ms</a> (const <a class="el" href="group__timestamp.html#ga8b7f3d602cc053f05bacceeacc257ed8">absolute_time_t</a> t, uint32_t ms)</td></tr>
<tr class="memdesc:ga7ee031a9cdeb9a9a6328d1b41d53cf5c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a timestamp value obtained by adding a number of milliseconds to another timestamp.  <a href="group__timestamp.html#ga7ee031a9cdeb9a9a6328d1b41d53cf5c">More...</a><br /></td></tr>
<tr class="separator:ga7ee031a9cdeb9a9a6328d1b41d53cf5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga70921b9073202a54eec3494b4d19ec84"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="group__timestamp.html#ga8b7f3d602cc053f05bacceeacc257ed8">absolute_time_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__timestamp.html#ga70921b9073202a54eec3494b4d19ec84">make_timeout_time_us</a> (uint64_t us)</td></tr>
<tr class="memdesc:ga70921b9073202a54eec3494b4d19ec84"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convenience method to get the timestamp a number of microseconds from the current time.  <a href="group__timestamp.html#ga70921b9073202a54eec3494b4d19ec84">More...</a><br /></td></tr>
<tr class="separator:ga70921b9073202a54eec3494b4d19ec84"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab11f5a243dd585b6903a87b0127df2cc"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="group__timestamp.html#ga8b7f3d602cc053f05bacceeacc257ed8">absolute_time_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__timestamp.html#gab11f5a243dd585b6903a87b0127df2cc">make_timeout_time_ms</a> (uint32_t ms)</td></tr>
<tr class="memdesc:gab11f5a243dd585b6903a87b0127df2cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convenience method to get the timestamp a number of milliseconds from the current time.  <a href="group__timestamp.html#gab11f5a243dd585b6903a87b0127df2cc">More...</a><br /></td></tr>
<tr class="separator:gab11f5a243dd585b6903a87b0127df2cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga36d9cbebcc55e41921550edbabf17ab2"><td class="memItemLeft" align="right" valign="top">static int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__timestamp.html#ga36d9cbebcc55e41921550edbabf17ab2">absolute_time_diff_us</a> (<a class="el" href="group__timestamp.html#ga8b7f3d602cc053f05bacceeacc257ed8">absolute_time_t</a> from, <a class="el" href="group__timestamp.html#ga8b7f3d602cc053f05bacceeacc257ed8">absolute_time_t</a> to)</td></tr>
<tr class="memdesc:ga36d9cbebcc55e41921550edbabf17ab2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the difference in microseconds between two timestamps.  <a href="group__timestamp.html#ga36d9cbebcc55e41921550edbabf17ab2">More...</a><br /></td></tr>
<tr class="separator:ga36d9cbebcc55e41921550edbabf17ab2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga522e97b4c9dfeb3db0bc702461b61a3a"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="group__timestamp.html#ga8b7f3d602cc053f05bacceeacc257ed8">absolute_time_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__timestamp.html#ga522e97b4c9dfeb3db0bc702461b61a3a">absolute_time_min</a> (<a class="el" href="group__timestamp.html#ga8b7f3d602cc053f05bacceeacc257ed8">absolute_time_t</a> a, <a class="el" href="group__timestamp.html#ga8b7f3d602cc053f05bacceeacc257ed8">absolute_time_t</a> b)</td></tr>
<tr class="memdesc:ga522e97b4c9dfeb3db0bc702461b61a3a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the earlier of two timestamps.  <a href="group__timestamp.html#ga522e97b4c9dfeb3db0bc702461b61a3a">More...</a><br /></td></tr>
<tr class="separator:ga522e97b4c9dfeb3db0bc702461b61a3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga408e44143880dd2a9ebfe2f3ebeab242"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__timestamp.html#ga408e44143880dd2a9ebfe2f3ebeab242">is_at_the_end_of_time</a> (<a class="el" href="group__timestamp.html#ga8b7f3d602cc053f05bacceeacc257ed8">absolute_time_t</a> t)</td></tr>
<tr class="memdesc:ga408e44143880dd2a9ebfe2f3ebeab242"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine if the given timestamp is "at_the_end_of_time".  <a href="group__timestamp.html#ga408e44143880dd2a9ebfe2f3ebeab242">More...</a><br /></td></tr>
<tr class="separator:ga408e44143880dd2a9ebfe2f3ebeab242"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0753884ef1d9340edacf53e9c06e42de"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__timestamp.html#ga0753884ef1d9340edacf53e9c06e42de">is_nil_time</a> (<a class="el" href="group__timestamp.html#ga8b7f3d602cc053f05bacceeacc257ed8">absolute_time_t</a> t)</td></tr>
<tr class="memdesc:ga0753884ef1d9340edacf53e9c06e42de"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine if the given timestamp is nil.  <a href="group__timestamp.html#ga0753884ef1d9340edacf53e9c06e42de">More...</a><br /></td></tr>
<tr class="separator:ga0753884ef1d9340edacf53e9c06e42de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7abed28d3918fe2b15f8007ba6569172"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sleep.html#ga7abed28d3918fe2b15f8007ba6569172">sleep_until</a> (<a class="el" href="group__timestamp.html#ga8b7f3d602cc053f05bacceeacc257ed8">absolute_time_t</a> target)</td></tr>
<tr class="memdesc:ga7abed28d3918fe2b15f8007ba6569172"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wait until after the given timestamp to return.  <a href="group__sleep.html#ga7abed28d3918fe2b15f8007ba6569172">More...</a><br /></td></tr>
<tr class="separator:ga7abed28d3918fe2b15f8007ba6569172"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaeeaebd3a10e0a193022f15c8603772ba"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sleep.html#gaeeaebd3a10e0a193022f15c8603772ba">sleep_us</a> (uint64_t us)</td></tr>
<tr class="memdesc:gaeeaebd3a10e0a193022f15c8603772ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wait for the given number of microseconds before returning.  <a href="group__sleep.html#gaeeaebd3a10e0a193022f15c8603772ba">More...</a><br /></td></tr>
<tr class="separator:gaeeaebd3a10e0a193022f15c8603772ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae617a6842d4f3a192064c4354b88fcff"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sleep.html#gae617a6842d4f3a192064c4354b88fcff">sleep_ms</a> (uint32_t ms)</td></tr>
<tr class="memdesc:gae617a6842d4f3a192064c4354b88fcff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wait for the given number of milliseconds before returning.  <a href="group__sleep.html#gae617a6842d4f3a192064c4354b88fcff">More...</a><br /></td></tr>
<tr class="separator:gae617a6842d4f3a192064c4354b88fcff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaedc0ed51a5e908ddd660a5d279009abc"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sleep.html#gaedc0ed51a5e908ddd660a5d279009abc">best_effort_wfe_or_timeout</a> (<a class="el" href="group__timestamp.html#ga8b7f3d602cc053f05bacceeacc257ed8">absolute_time_t</a> timeout_timestamp)</td></tr>
<tr class="memdesc:gaedc0ed51a5e908ddd660a5d279009abc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper method for blocking on a timeout.  <a href="group__sleep.html#gaedc0ed51a5e908ddd660a5d279009abc">More...</a><br /></td></tr>
<tr class="separator:gaedc0ed51a5e908ddd660a5d279009abc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab363026fa15b43405538eb087ee7cfa9"><td class="memItemLeft" align="right" valign="top">
void&#160;</td><td class="memItemRight" valign="bottom"><b>alarm_pool_init_default</b> (void)</td></tr>
<tr class="memdesc:gab363026fa15b43405538eb087ee7cfa9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create the default alarm pool (if not already created or disabled) <br /></td></tr>
<tr class="separator:gab363026fa15b43405538eb087ee7cfa9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a12957d00680c6c5737ec7f57f509d73d"><td class="memItemLeft" align="right" valign="top"><a id="a12957d00680c6c5737ec7f57f509d73d" name="a12957d00680c6c5737ec7f57f509d73d"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>runtime_init_default_alarm_pool</b> (void)</td></tr>
<tr class="separator:a12957d00680c6c5737ec7f57f509d73d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5092ceb879289c0a597a389f34b4815e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structalarm__pool.html">alarm_pool_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__alarm.html#ga5092ceb879289c0a597a389f34b4815e">alarm_pool_get_default</a> (void)</td></tr>
<tr class="memdesc:ga5092ceb879289c0a597a389f34b4815e"><td class="mdescLeft">&#160;</td><td class="mdescRight">The default alarm pool used when alarms are added without specifying an alarm pool, and also used by the SDK to support lower power sleeps and timeouts.  <a href="group__alarm.html#ga5092ceb879289c0a597a389f34b4815e">More...</a><br /></td></tr>
<tr class="separator:ga5092ceb879289c0a597a389f34b4815e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a078624fb8eadf3e5f7f6ec7608aad94f"><td class="memItemLeft" align="right" valign="top"><a id="a078624fb8eadf3e5f7f6ec7608aad94f" name="a078624fb8eadf3e5f7f6ec7608aad94f"></a>
<a class="el" href="structalarm__pool.html">alarm_pool_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>alarm_pool_create_on_timer</b> (alarm_pool_timer_t *timer, uint timer_alarm_num, uint max_timers)</td></tr>
<tr class="separator:a078624fb8eadf3e5f7f6ec7608aad94f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac3e274fab187713f3faa70e7472b0676"><td class="memItemLeft" align="right" valign="top"><a id="ac3e274fab187713f3faa70e7472b0676" name="ac3e274fab187713f3faa70e7472b0676"></a>
alarm_pool_timer_t *&#160;</td><td class="memItemRight" valign="bottom"><b>alarm_pool_timer_for_timer_num</b> (uint timer_num)</td></tr>
<tr class="separator:ac3e274fab187713f3faa70e7472b0676"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aebcd017af7a402fca20f1163039c71cd"><td class="memItemLeft" align="right" valign="top"><a id="aebcd017af7a402fca20f1163039c71cd" name="aebcd017af7a402fca20f1163039c71cd"></a>
alarm_pool_timer_t *&#160;</td><td class="memItemRight" valign="bottom"><b>alarm_pool_get_default_timer</b> (void)</td></tr>
<tr class="separator:aebcd017af7a402fca20f1163039c71cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga185db8b4e54a13d19fca6e5d2761bae6"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structalarm__pool.html">alarm_pool_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__alarm.html#ga185db8b4e54a13d19fca6e5d2761bae6">alarm_pool_create</a> (uint timer_alarm_num, uint max_timers)</td></tr>
<tr class="memdesc:ga185db8b4e54a13d19fca6e5d2761bae6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create an alarm pool.  <a href="group__alarm.html#ga185db8b4e54a13d19fca6e5d2761bae6">More...</a><br /></td></tr>
<tr class="separator:ga185db8b4e54a13d19fca6e5d2761bae6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab2774c4d9347961d09ff7d05cdaa4809"><td class="memItemLeft" align="right" valign="top"><a id="ab2774c4d9347961d09ff7d05cdaa4809" name="ab2774c4d9347961d09ff7d05cdaa4809"></a>
<a class="el" href="structalarm__pool.html">alarm_pool_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>alarm_pool_create_on_timer_with_unused_hardware_alarm</b> (alarm_pool_timer_t *timer, uint max_timers)</td></tr>
<tr class="separator:ab2774c4d9347961d09ff7d05cdaa4809"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga722973ee82ee4cffb438dc478471d138"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structalarm__pool.html">alarm_pool_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__alarm.html#ga722973ee82ee4cffb438dc478471d138">alarm_pool_create_with_unused_hardware_alarm</a> (uint max_timers)</td></tr>
<tr class="memdesc:ga722973ee82ee4cffb438dc478471d138"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create an alarm pool, claiming an used timer_alarm to back it.  <a href="group__alarm.html#ga722973ee82ee4cffb438dc478471d138">More...</a><br /></td></tr>
<tr class="separator:ga722973ee82ee4cffb438dc478471d138"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaeb9321260fecc29b551d5e6ceffccc99"><td class="memItemLeft" align="right" valign="top">uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__alarm.html#gaeb9321260fecc29b551d5e6ceffccc99">alarm_pool_timer_alarm_num</a> (<a class="el" href="structalarm__pool.html">alarm_pool_t</a> *pool)</td></tr>
<tr class="memdesc:gaeb9321260fecc29b551d5e6ceffccc99"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the timer alarm used by an alarm pool.  <a href="group__alarm.html#gaeb9321260fecc29b551d5e6ceffccc99">More...</a><br /></td></tr>
<tr class="separator:gaeb9321260fecc29b551d5e6ceffccc99"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb37e99626cd90880ffcd71f8aaee5b6"><td class="memItemLeft" align="right" valign="top"><a id="adb37e99626cd90880ffcd71f8aaee5b6" name="adb37e99626cd90880ffcd71f8aaee5b6"></a>
static uint&#160;</td><td class="memItemRight" valign="bottom"><b>alarm_pool_hardware_alarm_num</b> (<a class="el" href="structalarm__pool.html">alarm_pool_t</a> *pool)</td></tr>
<tr class="separator:adb37e99626cd90880ffcd71f8aaee5b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4918e03a3ddd5c328d65bd014d26856b"><td class="memItemLeft" align="right" valign="top">uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__alarm.html#ga4918e03a3ddd5c328d65bd014d26856b">alarm_pool_core_num</a> (<a class="el" href="structalarm__pool.html">alarm_pool_t</a> *pool)</td></tr>
<tr class="memdesc:ga4918e03a3ddd5c328d65bd014d26856b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the core number the alarm pool was initialized on (and hence callbacks are called on)  <a href="group__alarm.html#ga4918e03a3ddd5c328d65bd014d26856b">More...</a><br /></td></tr>
<tr class="separator:ga4918e03a3ddd5c328d65bd014d26856b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae7536c4d34088a2d19b2da92b87cbb4e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__alarm.html#gae7536c4d34088a2d19b2da92b87cbb4e">alarm_pool_destroy</a> (<a class="el" href="structalarm__pool.html">alarm_pool_t</a> *pool)</td></tr>
<tr class="memdesc:gae7536c4d34088a2d19b2da92b87cbb4e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy the alarm pool, cancelling all alarms and freeing up the underlying timer_alarm.  <a href="group__alarm.html#gae7536c4d34088a2d19b2da92b87cbb4e">More...</a><br /></td></tr>
<tr class="separator:gae7536c4d34088a2d19b2da92b87cbb4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab75446a927e4e870ad27fde145a88019"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__alarm.html#gaa593548569c182a0d65d2e06a9c3493b">alarm_id_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__alarm.html#gab75446a927e4e870ad27fde145a88019">alarm_pool_add_alarm_at</a> (<a class="el" href="structalarm__pool.html">alarm_pool_t</a> *pool, <a class="el" href="group__timestamp.html#ga8b7f3d602cc053f05bacceeacc257ed8">absolute_time_t</a> time, <a class="el" href="group__alarm.html#gade88ed45e9b59ad39d91f17c8709c16a">alarm_callback_t</a> callback, void *user_data, bool fire_if_past)</td></tr>
<tr class="memdesc:gab75446a927e4e870ad27fde145a88019"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add an alarm callback to be called at a specific time.  <a href="group__alarm.html#gab75446a927e4e870ad27fde145a88019">More...</a><br /></td></tr>
<tr class="separator:gab75446a927e4e870ad27fde145a88019"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga72bfc8c2dd5bf334cd68af2e349a1b37"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__alarm.html#gaa593548569c182a0d65d2e06a9c3493b">alarm_id_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__alarm.html#ga72bfc8c2dd5bf334cd68af2e349a1b37">alarm_pool_add_alarm_at_force_in_context</a> (<a class="el" href="structalarm__pool.html">alarm_pool_t</a> *pool, <a class="el" href="group__timestamp.html#ga8b7f3d602cc053f05bacceeacc257ed8">absolute_time_t</a> time, <a class="el" href="group__alarm.html#gade88ed45e9b59ad39d91f17c8709c16a">alarm_callback_t</a> callback, void *user_data)</td></tr>
<tr class="memdesc:ga72bfc8c2dd5bf334cd68af2e349a1b37"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add an alarm callback to be called at or after a specific time.  <a href="group__alarm.html#ga72bfc8c2dd5bf334cd68af2e349a1b37">More...</a><br /></td></tr>
<tr class="separator:ga72bfc8c2dd5bf334cd68af2e349a1b37"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0d00072e81de2d54fa690dc4b4bfe408"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="group__alarm.html#gaa593548569c182a0d65d2e06a9c3493b">alarm_id_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__alarm.html#ga0d00072e81de2d54fa690dc4b4bfe408">alarm_pool_add_alarm_in_us</a> (<a class="el" href="structalarm__pool.html">alarm_pool_t</a> *pool, uint64_t us, <a class="el" href="group__alarm.html#gade88ed45e9b59ad39d91f17c8709c16a">alarm_callback_t</a> callback, void *user_data, bool fire_if_past)</td></tr>
<tr class="memdesc:ga0d00072e81de2d54fa690dc4b4bfe408"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add an alarm callback to be called after a delay specified in microseconds.  <a href="group__alarm.html#ga0d00072e81de2d54fa690dc4b4bfe408">More...</a><br /></td></tr>
<tr class="separator:ga0d00072e81de2d54fa690dc4b4bfe408"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6e32765c525683f216fc42bd1984e239"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="group__alarm.html#gaa593548569c182a0d65d2e06a9c3493b">alarm_id_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__alarm.html#ga6e32765c525683f216fc42bd1984e239">alarm_pool_add_alarm_in_ms</a> (<a class="el" href="structalarm__pool.html">alarm_pool_t</a> *pool, uint32_t ms, <a class="el" href="group__alarm.html#gade88ed45e9b59ad39d91f17c8709c16a">alarm_callback_t</a> callback, void *user_data, bool fire_if_past)</td></tr>
<tr class="memdesc:ga6e32765c525683f216fc42bd1984e239"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add an alarm callback to be called after a delay specified in milliseconds.  <a href="group__alarm.html#ga6e32765c525683f216fc42bd1984e239">More...</a><br /></td></tr>
<tr class="separator:ga6e32765c525683f216fc42bd1984e239"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga342ebecd5ebc1a39f1da0bac81069712"><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__alarm.html#ga342ebecd5ebc1a39f1da0bac81069712">alarm_pool_remaining_alarm_time_us</a> (<a class="el" href="structalarm__pool.html">alarm_pool_t</a> *pool, <a class="el" href="group__alarm.html#gaa593548569c182a0d65d2e06a9c3493b">alarm_id_t</a> alarm_id)</td></tr>
<tr class="memdesc:ga342ebecd5ebc1a39f1da0bac81069712"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the time remaining before the next trigger of an alarm.  <a href="group__alarm.html#ga342ebecd5ebc1a39f1da0bac81069712">More...</a><br /></td></tr>
<tr class="separator:ga342ebecd5ebc1a39f1da0bac81069712"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3a9a4343aa9efe22e4324dc82ad2f3ec"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__alarm.html#ga3a9a4343aa9efe22e4324dc82ad2f3ec">alarm_pool_remaining_alarm_time_ms</a> (<a class="el" href="structalarm__pool.html">alarm_pool_t</a> *pool, <a class="el" href="group__alarm.html#gaa593548569c182a0d65d2e06a9c3493b">alarm_id_t</a> alarm_id)</td></tr>
<tr class="memdesc:ga3a9a4343aa9efe22e4324dc82ad2f3ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the time remaining before the next trigger of an alarm.  <a href="group__alarm.html#ga3a9a4343aa9efe22e4324dc82ad2f3ec">More...</a><br /></td></tr>
<tr class="separator:ga3a9a4343aa9efe22e4324dc82ad2f3ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga02cc23b4a3109fb8c2d57e24981f2932"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__alarm.html#ga02cc23b4a3109fb8c2d57e24981f2932">alarm_pool_cancel_alarm</a> (<a class="el" href="structalarm__pool.html">alarm_pool_t</a> *pool, <a class="el" href="group__alarm.html#gaa593548569c182a0d65d2e06a9c3493b">alarm_id_t</a> alarm_id)</td></tr>
<tr class="memdesc:ga02cc23b4a3109fb8c2d57e24981f2932"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cancel an alarm.  <a href="group__alarm.html#ga02cc23b4a3109fb8c2d57e24981f2932">More...</a><br /></td></tr>
<tr class="separator:ga02cc23b4a3109fb8c2d57e24981f2932"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae98ddd58a2c1d142eb6db7882512ce8d"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="group__alarm.html#gaa593548569c182a0d65d2e06a9c3493b">alarm_id_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__alarm.html#gae98ddd58a2c1d142eb6db7882512ce8d">add_alarm_at</a> (<a class="el" href="group__timestamp.html#ga8b7f3d602cc053f05bacceeacc257ed8">absolute_time_t</a> time, <a class="el" href="group__alarm.html#gade88ed45e9b59ad39d91f17c8709c16a">alarm_callback_t</a> callback, void *user_data, bool fire_if_past)</td></tr>
<tr class="memdesc:gae98ddd58a2c1d142eb6db7882512ce8d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add an alarm callback to be called at a specific time.  <a href="group__alarm.html#gae98ddd58a2c1d142eb6db7882512ce8d">More...</a><br /></td></tr>
<tr class="separator:gae98ddd58a2c1d142eb6db7882512ce8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga69b4481d9d9a906caefb31c54a048575"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="group__alarm.html#gaa593548569c182a0d65d2e06a9c3493b">alarm_id_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__alarm.html#ga69b4481d9d9a906caefb31c54a048575">add_alarm_in_us</a> (uint64_t us, <a class="el" href="group__alarm.html#gade88ed45e9b59ad39d91f17c8709c16a">alarm_callback_t</a> callback, void *user_data, bool fire_if_past)</td></tr>
<tr class="memdesc:ga69b4481d9d9a906caefb31c54a048575"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add an alarm callback to be called after a delay specified in microseconds.  <a href="group__alarm.html#ga69b4481d9d9a906caefb31c54a048575">More...</a><br /></td></tr>
<tr class="separator:ga69b4481d9d9a906caefb31c54a048575"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8bb045ab597f773d7d5fdfea5db94f69"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="group__alarm.html#gaa593548569c182a0d65d2e06a9c3493b">alarm_id_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__alarm.html#ga8bb045ab597f773d7d5fdfea5db94f69">add_alarm_in_ms</a> (uint32_t ms, <a class="el" href="group__alarm.html#gade88ed45e9b59ad39d91f17c8709c16a">alarm_callback_t</a> callback, void *user_data, bool fire_if_past)</td></tr>
<tr class="memdesc:ga8bb045ab597f773d7d5fdfea5db94f69"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add an alarm callback to be called after a delay specified in milliseconds.  <a href="group__alarm.html#ga8bb045ab597f773d7d5fdfea5db94f69">More...</a><br /></td></tr>
<tr class="separator:ga8bb045ab597f773d7d5fdfea5db94f69"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae99f63dc25fe5c3a0d78d9fb90308b1b"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__alarm.html#gae99f63dc25fe5c3a0d78d9fb90308b1b">cancel_alarm</a> (<a class="el" href="group__alarm.html#gaa593548569c182a0d65d2e06a9c3493b">alarm_id_t</a> alarm_id)</td></tr>
<tr class="memdesc:gae99f63dc25fe5c3a0d78d9fb90308b1b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cancel an alarm from the default alarm pool.  <a href="group__alarm.html#gae99f63dc25fe5c3a0d78d9fb90308b1b">More...</a><br /></td></tr>
<tr class="separator:gae99f63dc25fe5c3a0d78d9fb90308b1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga549331a1b34938eb9f9dae03712a714c"><td class="memItemLeft" align="right" valign="top">int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__alarm.html#ga549331a1b34938eb9f9dae03712a714c">remaining_alarm_time_us</a> (<a class="el" href="group__alarm.html#gaa593548569c182a0d65d2e06a9c3493b">alarm_id_t</a> alarm_id)</td></tr>
<tr class="memdesc:ga549331a1b34938eb9f9dae03712a714c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the time remaining before the next trigger of an alarm.  <a href="group__alarm.html#ga549331a1b34938eb9f9dae03712a714c">More...</a><br /></td></tr>
<tr class="separator:ga549331a1b34938eb9f9dae03712a714c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga61affbec7fedd98582b1df8b5ca3fe3b"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__alarm.html#ga61affbec7fedd98582b1df8b5ca3fe3b">remaining_alarm_time_ms</a> (<a class="el" href="group__alarm.html#gaa593548569c182a0d65d2e06a9c3493b">alarm_id_t</a> alarm_id)</td></tr>
<tr class="memdesc:ga61affbec7fedd98582b1df8b5ca3fe3b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the time remaining before the next trigger of an alarm.  <a href="group__alarm.html#ga61affbec7fedd98582b1df8b5ca3fe3b">More...</a><br /></td></tr>
<tr class="separator:ga61affbec7fedd98582b1df8b5ca3fe3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga75dad2018ae1e4c154fb17cd96db9872"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__repeating__timer.html#ga75dad2018ae1e4c154fb17cd96db9872">alarm_pool_add_repeating_timer_us</a> (<a class="el" href="structalarm__pool.html">alarm_pool_t</a> *pool, int64_t delay_us, <a class="el" href="group__repeating__timer.html#ga028fe2b7d00c1927c24131aae7c375f3">repeating_timer_callback_t</a> callback, void *user_data, <a class="el" href="structrepeating__timer.html">repeating_timer_t</a> *out)</td></tr>
<tr class="memdesc:ga75dad2018ae1e4c154fb17cd96db9872"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a repeating timer that is called repeatedly at the specified interval in microseconds.  <a href="group__repeating__timer.html#ga75dad2018ae1e4c154fb17cd96db9872">More...</a><br /></td></tr>
<tr class="separator:ga75dad2018ae1e4c154fb17cd96db9872"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae5a6b07212ea5e106a81fc2f814a9e9e"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__repeating__timer.html#gae5a6b07212ea5e106a81fc2f814a9e9e">alarm_pool_add_repeating_timer_ms</a> (<a class="el" href="structalarm__pool.html">alarm_pool_t</a> *pool, int32_t delay_ms, <a class="el" href="group__repeating__timer.html#ga028fe2b7d00c1927c24131aae7c375f3">repeating_timer_callback_t</a> callback, void *user_data, <a class="el" href="structrepeating__timer.html">repeating_timer_t</a> *out)</td></tr>
<tr class="memdesc:gae5a6b07212ea5e106a81fc2f814a9e9e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a repeating timer that is called repeatedly at the specified interval in milliseconds.  <a href="group__repeating__timer.html#gae5a6b07212ea5e106a81fc2f814a9e9e">More...</a><br /></td></tr>
<tr class="separator:gae5a6b07212ea5e106a81fc2f814a9e9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8da55f26158144c2a9a813f69a524906"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__repeating__timer.html#ga8da55f26158144c2a9a813f69a524906">add_repeating_timer_us</a> (int64_t delay_us, <a class="el" href="group__repeating__timer.html#ga028fe2b7d00c1927c24131aae7c375f3">repeating_timer_callback_t</a> callback, void *user_data, <a class="el" href="structrepeating__timer.html">repeating_timer_t</a> *out)</td></tr>
<tr class="memdesc:ga8da55f26158144c2a9a813f69a524906"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a repeating timer that is called repeatedly at the specified interval in microseconds.  <a href="group__repeating__timer.html#ga8da55f26158144c2a9a813f69a524906">More...</a><br /></td></tr>
<tr class="separator:ga8da55f26158144c2a9a813f69a524906"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga02133dbe7083fcf3c7392a2cfb8243ba"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__repeating__timer.html#ga02133dbe7083fcf3c7392a2cfb8243ba">add_repeating_timer_ms</a> (int32_t delay_ms, <a class="el" href="group__repeating__timer.html#ga028fe2b7d00c1927c24131aae7c375f3">repeating_timer_callback_t</a> callback, void *user_data, <a class="el" href="structrepeating__timer.html">repeating_timer_t</a> *out)</td></tr>
<tr class="memdesc:ga02133dbe7083fcf3c7392a2cfb8243ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a repeating timer that is called repeatedly at the specified interval in milliseconds.  <a href="group__repeating__timer.html#ga02133dbe7083fcf3c7392a2cfb8243ba">More...</a><br /></td></tr>
<tr class="separator:ga02133dbe7083fcf3c7392a2cfb8243ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9ad5a07a3f2300cc9d46c1c847fae6f1"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__repeating__timer.html#ga9ad5a07a3f2300cc9d46c1c847fae6f1">cancel_repeating_timer</a> (<a class="el" href="structrepeating__timer.html">repeating_timer_t</a> *timer)</td></tr>
<tr class="memdesc:ga9ad5a07a3f2300cc9d46c1c847fae6f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cancel a repeating timer.  <a href="group__repeating__timer.html#ga9ad5a07a3f2300cc9d46c1c847fae6f1">More...</a><br /></td></tr>
<tr class="separator:ga9ad5a07a3f2300cc9d46c1c847fae6f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="var-members" name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:gab375b40e949dce1052298f79c66f7120"><td class="memItemLeft" align="right" valign="top">
const <a class="el" href="group__timestamp.html#ga8b7f3d602cc053f05bacceeacc257ed8">absolute_time_t</a>&#160;</td><td class="memItemRight" valign="bottom"><b>at_the_end_of_time</b></td></tr>
<tr class="memdesc:gab375b40e949dce1052298f79c66f7120"><td class="mdescLeft">&#160;</td><td class="mdescRight">The timestamp representing the end of time; this is actually not the maximum possible timestamp, but is set to 0x7fffffff_ffffffff microseconds to avoid sign overflows with time arithmetic. This is almost 300,000 years, so should be sufficient. <br /></td></tr>
<tr class="separator:gab375b40e949dce1052298f79c66f7120"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga978d7972634296a1870c28b0727beefb"><td class="memItemLeft" align="right" valign="top">
const <a class="el" href="group__timestamp.html#ga8b7f3d602cc053f05bacceeacc257ed8">absolute_time_t</a>&#160;</td><td class="memItemRight" valign="bottom"><b>nil_time</b></td></tr>
<tr class="memdesc:ga978d7972634296a1870c28b0727beefb"><td class="mdescLeft">&#160;</td><td class="mdescRight">The timestamp representing a null timestamp. <br /></td></tr>
<tr class="separator:ga978d7972634296a1870c28b0727beefb"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
</div><!-- doc-content -->

	<script src="main.js"></script>
</body>
</html>